package com.uidt.project.ptsj.mapper;

import java.util.List;

import com.uidt.project.ptsj.domain.PlaceInfo;
import com.uidt.project.ptsj.obj.PlaceScoreRankObj;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

/**
 * 场所信息Mapper接口
 *
 * @author uidt
 * @date 2024-08-15
 */
@Component
public interface PlaceInfoMapper {
    public PlaceInfo selectPlaceInfoByPlaceCode(String placeCode);

    /**
     * 查询单位信息列表
     *
     * @param PlaceInfo 单位信息
     * @return 单位信息集合
     */
    public List<PlaceInfo> selectPlaceInfoList(PlaceInfo PlaceInfo);


    /**
     * 新增单位信息
     *
     * @param PlaceInfo 单位信息
     * @return 结果
     */
    public int insertPlaceInfo(PlaceInfo PlaceInfo);

    /**
     * 修改单位信息
     *
     * @param PlaceInfo 单位信息
     * @return 结果
     */
    public int updatePlaceInfo(PlaceInfo PlaceInfo);

    /**
     * 删除单位信息
     *
     * @param placeCode 单位信息主键
     * @return 结果
     */
    public int deletePlaceInfoByPlaceCode(String placeCode);

    /**
     * 批量删除单位信息
     *
     * @param placeCodes 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePlaceInfoByPlaceCodes(String[] placeCodes);

    void addScore(@Param("placeCode") String placeId, @Param("score") long score);

    void addCard(@Param("cardType") int cardType, @Param("placeCode") String placeCode);

    void updatePlaceInfoByPlaceName(PlaceInfo placeInfo);

    PlaceInfo selectPlaceInfoByPlaceName(String placeName);

    List<PlaceScoreRankObj> getPlaceScoreRank();

    /**
     * 查询单位积分排序列表
     *
     * @param PlaceInfo 单位信息
     * @return 单位信息集合
     */
    public List<PlaceInfo> selectRankList(PlaceInfo PlaceInfo);
}
